/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package arquivos;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 *
 * @author leovirgilio
 */
public class TestaArquivo2 {

    public static String LeituraTeclado(String txt) {
        String str = null;
        try {
            BufferedReader leitura = new BufferedReader(
                    new InputStreamReader(System.in));
            System.out.print(txt);
            str = leitura.readLine();
        } catch (IOException erro) {
            System.out.println("Erro na leitura. " + erro);
        }
        return str;
    }

    public static BufferedWriter CriaEscritor(File arquivo) {
        BufferedWriter bw = null;
        try {
            FileWriter fw = new FileWriter(arquivo, false);
            bw = new BufferedWriter(fw);
        } catch (IOException erro) {
            System.out.println("Erro ao criar arquivo. " + erro);
        }
        return bw;
    }

    public static void Escreve(BufferedWriter bw, String txt) {
        try {
            bw.write(txt + "\n");
            bw.flush();
        } catch (IOException erro) {
            System.out.println("Erro na escrita. " + erro);
        }
    }

    public static void main(String[] args) {
        String leitura = LeituraTeclado("Digite uma pasta "
                + "para leitura ou 'S' para sair: ");
        while (leitura != null && !leitura.equalsIgnoreCase("S")) {
            File diretorio = new File(leitura);
            diretorio.mkdir();
            System.out.println("\nPasta criada com sucesso!\n");

            File arquivo = new File(diretorio, "log.txt");
            BufferedWriter bw = CriaEscritor(arquivo);
            Escreve(bw, "Olá Java!\nUtilizando Buffer.");

            File subdir = new File(diretorio, "subdir1");
            subdir.mkdir();
            String[] arquivos = diretorio.list();
            for (int i = 0; i < arquivos.length; i++) {
                File filho = new File(diretorio, arquivos[i]);
                Escreve(bw, filho.getAbsolutePath());
                Escreve(bw, filho.getParent());
                Escreve(bw, "É diretorio? " + filho.isDirectory());
                Escreve(bw, "É arquivo? " + filho.isFile());
                Escreve(bw, "Tamanho = " + filho.length() + " bytes.");
            }
            leitura = LeituraTeclado("Digite uma pasta "
                    + "para leitura ou 'S' para sair: ");
        }
    }
}